#define _CRT_SECURE_NO_WARNINGS 1


//#include <stdio.h>
//
//void Scanf(int x, int arr[1000])
//{
//	int i = 0;
//
//	for (i = 0; i < x; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//
//}
//
//void Bubble_Sort(int x, int arr[2000])
//{
//	int i = 0;
//
//	for (i = 0; i < x - 1; i++)
//	{
//		int flag = 1;
//		int j = 0;
//
//		for (j = 0; j < x - 1 - i; j++)
//		{
//
//			if (arr[j] > arr[j + 1])
//			{
//				int tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//				flag = 0;
//			}
//
//		}
//
//		if (1 == flag)
//		{
//			break;
//		}
//
//	}
//
//}
//
//void Print(int x, int arr[2000])
//{
//	int i = 0;
//
//	for (i = 0; i < x; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//
//}
//
//int main()
//{
//	int n = 0;
//	int m = 0;
//	int arr1[1000] = { 0 };
//	int arr2[1000] = { 0 };
//	int arr3[2000] = { 0 };
//	scanf("%d %d", &n, &m);	
//	Scanf(n, arr1);
//	Scanf(m, arr2);
//	int i = 0;
//
//	for (i = 0; i < n; i++)
//	{
//		arr3[i] = arr1[i];
//	}
//
//	for (i = n; i < n + m; i++)
//	{
//		arr3[i] = arr2[i - n];
//	}
//
//	Bubble_Sort(n + m, arr3);
//	Print(n + m, arr3);
//
//	return 0;
//}




//#include <stdio.h>
//
//int main()
//{
//	int n = 0;
//	int arr[50] = { 0 };
//	int i = 0;
//	int flag = 1;
//	scanf("%d", &n);
//
//	for (i = 0; i < n; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//
//	for (i = 0; i < n - 2; i++)
//	{
//
//		if ((arr[i]<arr[i+1] && arr[i+1]>arr[i+2]) || (arr[i]>arr[i+1] && arr[i+1]<arr[i+2]))
//		{
//			flag = 0;
//			break;
//		}
//
//	}
//
//	if (1 == flag)
//	{
//		printf("sorted\n");
//	}
//	else
//	{
//		printf("unsorted\n");
//	}
//
//	return 0;
//}



#include <stdio.h>

int main()
{
	int year = 0;
	int month = 0;
	while (scanf("%d %d", &year, &month) != EOF)
	{
		
		if (month != 2)
		{
			switch (month)
			{
			case 4:
			case 6:
			case 9:
			case 11:
				printf("30\n");
				break;
			default:
				printf("31\n");
				break;
			}

		}
		else
		{

			if (((0==year%4) && (year%100!=0)) || (0==year%400))
			{
				printf("29\n");
			}
			else
			{
				printf("28\n");
			}

		}

	}

	return 0;
}